package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 使用对象输出流进行对象序列化操作
 *
 * 对象序列化:将一个java对象转换为一组可以用于保存或网络传输的字节的过程。
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
        //将一个Person对象写入文件person.obj中
        String name = "王克晶";
        int age = 18;
        String gender = "女";
        String[] otherInfo = {"黑","技术好","大家的启蒙老师","嗓门大"};
        Person person = new Person(name,age,gender,otherInfo);

        FileOutputStream fos = new FileOutputStream("person.obj");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        /*
            对象输出流提供的序列化方法：
            void writeObject(Object obj)
            该方法会将给定的对象序列化为一组字节后通过其连接的流写出
            该方法要求对象必须实现Serializable接口，否则会抛出异常:
            java.io.NotSerializableException
         */
        oos.writeObject(person);
        System.out.println("写出完毕");
        oos.close();
    }
}





